﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using FacProFacu;
using Comun;

namespace Guada
{
    public partial class FrmAbmEspecialidad : Plantilla
    {
        public FrmAbmEspecialidad()
        {
            InitializeComponent();
        }

        private void FrmAbmEspecialidad_Load(object sender, EventArgs e)
        {
            try
            {
                FacProFacu.Sistema sistema = new FacProFacu.Sistema();
                Controles control = new Controles();
                control.CargarCBox(cmbEspecialidad, sistema.GetEspecialidad().Tables["ESPECIALIDADES"], "CODIGO", "DESCRIPCION", Controles.ComboBoxLabel.SelectOne);
                BtnGrabar.Enabled = false;
            }
            catch
            {
                MessageBox.Show("Se ha producido un Error", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }

        private void BtnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void BtnGrabar_Click(object sender, EventArgs e)
        {
            Sistema sistema = new FacProFacu.Sistema();

            if ( tabAlta.Focused)
            {
                txtNuevaId.Text = sistema.ObtenerClave().ToString();

                if (txtNuevaDescripcion.Text.Trim() != string.Empty)
                {
                    int alta = sistema.AltaEspecialidad(Convert.ToInt32(txtNuevaId.Text), txtNuevaDescripcion.Text);

                    if (alta > 0)
                    {
                        MessageBox.Show(string.Format("Se ha realizado el alta de la especialidad: {0} con exito!", txtNuevaDescripcion.Text), "ALTA DE ESPECIALIDAD", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            else
            {
                if (ckbBajaEspecialidad.Checked == false)
                {
                    if (txtDescripcion.Text.Trim() != string.Empty)
                    {
                        sistema.ModificacionEspecialidad(Convert.ToInt32(txtId.Text),txtDescripcion.Text);
                    }
                }
                else
                {
                      DialogResult = MessageBox.Show("Esta seguro que quiere realizar la baja de la especialidad?", "CONFIRMACION DE BAJA DE ESPECIALIDAD", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                      if (DialogResult == DialogResult.Yes)
                      {
                          if (TurnosActivos(txtId.Text) > 0)
                          {
                              DialogResult = MessageBox.Show(string.Format("Existen turnos otorgados para la especialidad {0}; Desea eliminarlos?", cmbEspecialidad.SelectedText), "CONFIRMACION DE BAJA", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                              if (DialogResult == DialogResult.Yes)
                              {
                                  Turno turnos = new Turno();
                                  turnos.EliminarTurnosOtorgados(txtId.Text);
                              }
                          }

                          int baja = sistema.BajaEspecialidad(Convert.ToInt32(txtId.Text));

                          if (baja > 0)
                          {
                              MessageBox.Show("La baja ha sido exitosa", "BAJA DE ESPECIALIDAD", MessageBoxButtons.OK, MessageBoxIcon.Information);
                          }
                      }
                }
            }
        }

        private void cmbEspecialidad_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmbEspecialidad.SelectedIndex > 0)
            {
                FacProFacu.Sistema sistema = new FacProFacu.Sistema();
                DataTable Dt = sistema.GetDatosEspecialidad(cmbEspecialidad.SelectedIndex).Tables["ESPGRAL"];

                txtId.Text = Dt.Rows[0]["idEspecialidad"].ToString();
                txtDescripcion.Text = Dt.Rows[0]["descripcion"].ToString();

                BtnGrabar.Enabled = true;
            }
        }

        private void tabAlta_Click(object sender, EventArgs e)
        {
            BtnGrabar.Enabled = true;
        }

        private void tabModBaja_Click(object sender, EventArgs e)
        {
            BtnGrabar.Enabled = false;
        }

        private int TurnosActivos(string sId)
        {
            Turno turnos = new FacProFacu.Turno();
            int cantidadTurnos = Convert.ToInt32(turnos.GetTurnosActivos(sId).Tables["TURNOS"].Rows[0][0].ToString());
            return cantidadTurnos;
        }
    }
}
